Several protocols exist in which one computer (a "host") receives and processes messages from a number of other computers ("clients"). For example, in applications involving the world-wide web, a server can receive and process many concurrent messages from different personal computer users; in this example, the server would be the "host" while each personal computer would be a "client."
Many of these protocols are referred to as "stateless," meaning that a host inherently processes each message without regard to any particular client or past messages which have been transmitted between host and client. Examples of stateless protocols include Hypertext Transfer Protocol ("HTTP"), Internet Protocol, User Datagram Protocol, Simple Mail Transfer Protocol, and Network File System Protocol. As implied by this description, typical stateless protocols inherently treat all messages as the same, processing them in the order received.
Frequently, however, there may be one or more functions which are considered relatively more important or urgent than others. For example, in some applications involving the world-wide web (the "web"), it might be considered more important to receive and process a commercial transaction than to permit browsing of certain types of information. Functions can also be considered relatively more important or urgent dependent on context; for example, as host processing resources become stretched, a user of a client system may become more frustrated in trying to access information or complete a transaction. Such a user may submit a request several times if an inadequate response is received, heightening frustration, and it may be desired to give such users priority in host processing.
One technique which has evolved in connection with reducing user frustration involves applying "admission control," where only a certain number of client messages are processed ("admitted") and the remainder are refused; of the messages which are in fact admitted, all are ideally handled in an expedient manner without degradation of quality of service as to those admitted messages. An advantage of this technique is that admission control can be implemented in software, thus facilitating quick, inexpensive use with little advance notice. Unfortunately, typical admission control mechanisms operate by admitting messages on a message-by-message basis and, so, these typical admission control messages do not provide an adequate solution for multiple-message sessions. The fact that messages are stateless to a host does not imply that each message sent by a client system is independent of other messages sent by the client system, and it does little to relieve user frustration if one message in a series of related messages is admitted, while the others are delayed or refused admission.
Thus, admission control generally provides a way to prioritize messages which are received first; as long as processing resources are available, received messages are processed. As soon as processing resources become scarce, however, messages are refused admission to the host.
Admission control typically does not provide a means of discriminating between different functions offered by a host, and typically offer no guarantee for completion of sessions. Also, messages which are not admitted to the host are typically not handled at all, such that a client is not informed that the request has been refused or the client, if informed, is simply asked to "try again later." A refused client must usually try repeatedly to obtain service with no guarantee that future requests will be processed.
A definite need exists for a host processing system which can prioritize messages, either based on function or context. With such a system, a host could implement different types of service for different functions, for example, different processing tasks or different destinations such as web sites. Additionally, a need exists for an improved host processing system which can improve quality of service by admitting entire sessions, deferring entire sessions, and prioritize handling of deferred sessions when they are re-submitted. With a system of this type, admission control would at least provide a reliable means of finishing each session with high quality of service. A need further exists for a system that provides some level of service to all clients, including those which have been refused admission. The present invention solves these needs and provides further, related advantages.